<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        // 封装功能(常用代码块)

        function say() {

        }

        var foo = function () {

        }

        ;
        (function () {

        })();

        // 函数调用   函数名()

        // 函数的参数   形参(占位用)  和   实参(真正参与运算的数据)

        // 实参比形参多   多余的实参 不参与
        // 实参比形参少   没有赋值的形参 为 undefined



        // 返回值  函数执行完之后 return 出去的 结果

        // 声明提升  
        //  var   function  声明的具名函数 会提升


        // 作用域  全局(全局变量)  和  局部(函数内部)(局部变量)(只能在函数体内部使用)

        // window对象  变量 和 函数  会挂载在window 对象上

        // 上下级关系 
        // 使用变量(查找变量)时,先在自身作用域下查找,找不到向上一级作用域,直到找到为止,如果找不到,报错(...is not defined)


        // 递归  自己调用自己   斐波那切数列 走台阶问题
    </script>
</body>

</html>